home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / ada / gnat1792.zip / gnat179b / t-adainc / i-fortra.ads < prev    next >
Text File  |  1994-05-19  |  19KB  |  329 lines

  1. ------------------------------------------------------------------------------
  2. --                                                                          --
  3. --                         GNAT COMPILER COMPONENTS                         --
  4. --                                                                          --
  5. --                   I N T E R F A C E S . F O R T R A N                    --
  6. --                                                                          --
  7. --                                 S p e c                                  --
  8. --                                                                          --
  9. --                            $Revision: 1.2 $                              --
  10. --                                                                          --
  11. --           Copyright (c) 1992,1993,1994 NYU, All Rights Reserved          --
  12. --                                                                          --
  13. -- GNAT is free software;  you can  redistribute it  and/or modify it under --
  14. -- terms of the  GNU General Public License as published  by the Free Soft- --
  15. -- ware  Foundation;  either version 2,  or (at your option) any later ver- --
  16. -- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --
  17. -- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --
  18. -- or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License --
  19. -- for  more details.  You should have  received  a copy of the GNU General --
  20. -- Public License  distributed with GNAT;  see file COPYING.  If not, write --
  21. -- to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. --
  22. --                                                                          --
  23. ------------------------------------------------------------------------------
  24.  
  25. with Ada.Numerics.Generic_Complex_Types;
  26.  
  27. pragma Elaborate_All (Ada.Numerics.Generic_Complex_Types);
  28.  
  29. package Interfaces.Fortran is
  30.    pragma Pure;
  31.  
  32.    type Integer is new Standard_Integer;
  33.    subtype Fortran_Integer is Integer;
  34.  
  35.    type Real             is new Standard.Float;
  36.    type Double_Precision is new Standard.Long_Float;
  37.  
  38.    type Logical is new Boolean;
  39.  
  40.    package Single_Precision_Complex_Types is
  41.       new Ada.Numerics.Generic_Complex_Types (Real);
  42.  
  43.    type Complex is new Single_Precision_Complex_Types.Complex;
  44.  
  45.    type Imaginary is new Single_Precision_Complex_Types.Imaginary;
  46.    i : constant Imaginary := Imaginary (Single_Precision_Complex_Types.i);
  47.    j : constant Imaginary := Imaginary (Single_Precision_Complex_Types.j);
  48.  
  49.    type Character_Set is new Character;
  50.  
  51.    type Character is array (Positive range <>) of Character_Set;
  52.    pragma Pack (Character);
  53.  
  54.    subtype Fortran_Character is Character;
  55.  
  56.    Ada_To_Fortran : constant array (Standard.Character) of Character_Set := (
  57.      Character_Set'Val (000), Character_Set'Val (001),
  58.      Character_Set'Val (002), Character_Set'Val (003),
  59.      Character_Set'Val (004), Character_Set'Val (005),
  60.      Character_Set'Val (006), Character_Set'Val (007),
  61.      Character_Set'Val (008), Character_Set'Val (009),
  62.      Character_Set'Val (010), Character_Set'Val (011),
  63.      Character_Set'Val (012), Character_Set'Val (013),
  64.      Character_Set'Val (014), Character_Set'Val (015),
  65.      Character_Set'Val (016), Character_Set'Val (017),
  66.      Character_Set'Val (018), Character_Set'Val (019),
  67.      Character_Set'Val (020), Character_Set'Val (021),
  68.      Character_Set'Val (022), Character_Set'Val (023),
  69.      Character_Set'Val (024), Character_Set'Val (025),
  70.      Character_Set'Val (026), Character_Set'Val (027),
  71.      Character_Set'Val (028), Character_Set'Val (029),
  72.      Character_Set'Val (030), Character_Set'Val (031),
  73.      Character_Set'Val (032), Character_Set'Val (033),
  74.      Character_Set'Val (034), Character_Set'Val (035),
  75.      Character_Set'Val (036), Character_Set'Val (037),
  76.      Character_Set'Val (038), Character_Set'Val (039),
  77.      Character_Set'Val (040), Character_Set'Val (041),
  78.      Character_Set'Val (042), Character_Set'Val (043),
  79.      Character_Set'Val (044), Character_Set'Val (045),
  80.      Character_Set'Val (046), Character_Set'Val (047),
  81.      Character_Set'Val (048), Character_Set'Val (049),
  82.      Character_Set'Val (050), Character_Set'Val (051),
  83.      Character_Set'Val (052), Character_Set'Val (053),
  84.      Character_Set'Val (054), Character_Set'Val (055),
  85.      Character_Set'Val (056), Character_Set'Val (057),
  86.      Character_Set'Val (058), Character_Set'Val (059),
  87.      Character_Set'Val (060), Character_Set'Val (061),
  88.      Character_Set'Val (062), Character_Set'Val (063),
  89.      Character_Set'Val (064), Character_Set'Val (065),
  90.      Character_Set'Val (066), Character_Set'Val (067),
  91.      Character_Set'Val (068), Character_Set'Val (069),
  92.      Character_Set'Val (070), Character_Set'Val (071),
  93.      Character_Set'Val (072), Character_Set'Val (073),
  94.      Character_Set'Val (074), Character_Set'Val (075),
  95.      Character_Set'Val (076), Character_Set'Val (077),
  96.      Character_Set'Val (078), Character_Set'Val (079),
  97.      Character_Set'Val (080), Character_Set'Val (081),
  98.      Character_Set'Val (082), Character_Set'Val (083),
  99.      Character_Set'Val (084), Character_Set'Val (085),
  100.      Character_Set'Val (086), Character_Set'Val (087),
  101.      Character_Set'Val (088), Character_Set'Val (089),
  102.      Character_Set'Val (090), Character_Set'Val (091),
  103.      Character_Set'Val (092), Character_Set'Val (093),
  104.      Character_Set'Val (094), Character_Set'Val (095),
  105.      Character_Set'Val (096), Character_Set'Val (097),
  106.      Character_Set'Val (098), Character_Set'Val (099),
  107.      Character_Set'Val (100), Character_Set'Val (101),
  108.      Character_Set'Val (102), Character_Set'Val (103),
  109.      Character_Set'Val (104), Character_Set'Val (105),
  110.      Character_Set'Val (106), Character_Set'Val (107),
  111.      Character_Set'Val (108), Character_Set'Val (109),
  112.      Character_Set'Val (110), Character_Set'Val (111),
  113.      Character_Set'Val (112), Character_Set'Val (113),
  114.      Character_Set'Val (114), Character_Set'Val (115),
  115.      Character_Set'Val (116), Character_Set'Val (117),
  116.      Character_Set'Val (118), Character_Set'Val (119),
  117.      Character_Set'Val (120), Character_Set'Val (121),
  118.      Character_Set'Val (122), Character_Set'Val (123),
  119.      Character_Set'Val (124), Character_Set'Val (125),
  120.      Character_Set'Val (126), Character_Set'Val (127),
  121.      Character_Set'Val (128), Character_Set'Val (129),
  122.      Character_Set'Val (130), Character_Set'Val (131),
  123.      Character_Set'Val (132), Character_Set'Val (133),
  124.      Character_Set'Val (134), Character_Set'Val (135),
  125.      Character_Set'Val (136), Character_Set'Val (137),
  126.      Character_Set'Val (138), Character_Set'Val (139),
  127.      Character_Set'Val (140), Character_Set'Val (141),
  128.      Character_Set'Val (142), Character_Set'Val (143),
  129.      Character_Set'Val (144), Character_Set'Val (145),
  130.      Character_Set'Val (146), Character_Set'Val (147),
  131.      Character_Set'Val (148), Character_Set'Val (149),
  132.      Character_Set'Val (150), Character_Set'Val (151),
  133.      Character_Set'Val (152), Character_Set'Val (153),
  134.      Character_Set'Val (154), Character_Set'Val (155),
  135.      Character_Set'Val (156), Character_Set'Val (157),
  136.      Character_Set'Val (158), Character_Set'Val (159),
  137.      Character_Set'Val (160), Character_Set'Val (161),
  138.      Character_Set'Val (162), Character_Set'Val (163),
  139.      Character_Set'Val (164), Character_Set'Val (165),
  140.      Character_Set'Val (166), Character_Set'Val (167),
  141.      Character_Set'Val (168), Character_Set'Val (169),
  142.      Character_Set'Val (170), Character_Set'Val (171),
  143.      Character_Set'Val (172), Character_Set'Val (173),
  144.      Character_Set'Val (174), Character_Set'Val (175),
  145.      Character_Set'Val (176), Character_Set'Val (177),
  146.      Character_Set'Val (178), Character_Set'Val (179),
  147.      Character_Set'Val (180), Character_Set'Val (181),
  148.      Character_Set'Val (182), Character_Set'Val (183),
  149.      Character_Set'Val (184), Character_Set'Val (185),
  150.      Character_Set'Val (186), Character_Set'Val (187),
  151.      Character_Set'Val (188), Character_Set'Val (189),
  152.      Character_Set'Val (190), Character_Set'Val (191),
  153.      Character_Set'Val (192), Character_Set'Val (193),
  154.      Character_Set'Val (194), Charac